# coding:utf-8
"""
Author: 11203
Date:  16:40
Name: request_wares
请求钩子等函数集
"""
from flask import g, request, current_app

from common.utils import token_utils

# jwt验证请求钩子
def jwt_request_authorization():
    """
    自定义一个请求钩子函数，验证token，并且把验证成功之后的用户ID保存到全局变量中
    :return:
    """
    # 定义一个全局变量user_id
    g.user_id = None
    try:
        # 从请求头中获得token
        token = request.headers.get('token')
    except Exception as e:
        # 获得token失败（没有token）
        current_app.logger.error(e)
        return

    result = token_utils.verify_tokens_by_pyjwt(token)
    # 如果验证成功, 判断id是否在result字典中
    if 'id' in result:
        g.user_id = result['id']
